//连接mysql数据库的文件
const mysql = require('mysql');

module.exports = {
  //数据库配置
  config: {
    host: 'localhost',
    port: '3306',
    user: 'root',
    password: '123456',
    database: 'exapp',
  },
  // 连接数据库，使用mysql的连接池
  // 连接池的对象
  sqlConnect: function (sql, sqlArr, callBack) {
    let pool = mysql.createPool(this.config);
    pool.getConnection((err, conn) => {
      console.log('数据库连接');
      if (err) {
        console.log('连接失败');
        return;
      }
      // 事件驱动回调,执行数据库操作
      conn.query(sql, sqlArr, callBack);
      // 释放连接
      conn.release();
    });
  },
  // 操纵user信息的promise回调
  asyncSqlconnect: function (asyncSql, sqlArr) {
    return new Promise((resolve, reject) => {
      let pool = mysql.createPool(this.config);
      pool.getConnection((err, conn) => {
        console.log('数据库连接', asyncSql);
        if (err) {
          reject(err);
        } else {
          conn.query(asyncSql, sqlArr, (err, data) => {
            if (err) {
              reject(err);
            } else {
              // 将异步操作的结果作为参数传递出去
              resolve(data);
            }
          });
          // 释放连接
          conn.release();
        }
      });
    }).catch((err) => {
      console.log('catch', err);
    });
  },
};
